/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package collection;

import entity.Cliente;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import persistencia.LeituraCliente;
import persistencia.SalvarCliente;
import presenter.AddClientesPresenter;
import presenter.LimparArquivo;

/**
 *
 * @author jakson
 */
public class CollectionCliente {

    private ArrayList<Cliente> clientes = new ArrayList<Cliente>();
    private persistencia.SalvarCliente incluirArquivo = new SalvarCliente();
    private persistencia.LeituraCliente leitura = new LeituraCliente();
    private presenter.LimparArquivo limpar = new LimparArquivo();

    public CollectionCliente() {

        this.clientes = leitura.recuperaAgencia("src/arquivo/Clientes.txt");


    }

    public ArrayList<Cliente> getClientes() {
        return clientes;
    }

    public void incluirCliente(Cliente a) {

        clientes.add(a);
        incluirArquivo.gravarCliente(a);

    }

    public void excluirCliente(String codigo) {

        for (int i = 0; i < this.clientes.size(); i++) {
            if (clientes.get(i).getNome().compareTo(codigo) == 0) {
                clientes.remove(i);
                limpar.limpaArquivo("src/arquivo/clientes.txt");

            }

        }

        for (int j = 0; j < this.clientes.size(); j++) {
            incluirArquivo.gravarCliente(clientes.get(j));
        }
    }

    public void editar(String cod) {

        for (int i = 0; i < clientes.size(); i++) {

            if (clientes.get(i).getNome().equals(cod)) {

                new AddClientesPresenter("editar", clientes.get(i));
               
            }

        }
    }
    
    
     public void editacao(Cliente a){
        
        for(int i=0; i< this.clientes.size();i++){
            
            if(this.clientes.get(i).getCpf().equals(a.getCpf())){
                
                this.clientes.set(i, a);
            }
         }
                
        
         limpar.limpaArquivo("src/arquivo/clientes.txt");
          for (int j = 0; j < this.clientes.size(); j++){
                    incluirArquivo.gravarCliente(clientes.get(j));
            } 
    
}  
   

    

    public void editarCliente(Cliente c) {

        for (int i = 0; i < this.clientes.size(); i++) {

            if (this.clientes.get(i).getCpf().equals(c.getCpf())) {
                
               this. clientes.set(i, c);
            }


        }
         limpar.limpaArquivo("src/arquivo/clientes.txt");
          for (int j = 0; j < this.clientes.size(); j++) {
            incluirArquivo.gravarCliente(clientes.get(j));
        }
    }
    
    public Cliente buscaUsuario(String usuario){
        
        Cliente C = new Cliente("", "", "", "", "", "", "", "");
        try {
            for (int i = 0; i < clientes.size(); i++) {
                if (clientes.get(i).getUsuario().equals(usuario)) {
                    C = clientes.get(i);
                }

            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Cliente não encontardo");
        }
        return C;
    }
    
    
}
